package com.founding.rabbitmq.simple;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;


public class Producer {
    //自定义队列名称
    static final String QUEUE_NAME="simple_queue";

    public static void main(String[] args) throws Exception {
        //创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //主机地址
        connectionFactory.setHost("192.168.200.130");
        //连接端口；默认为5672
        connectionFactory.setPort(5672);
        //虚拟机主机名称；默认为/
        connectionFactory.setVirtualHost("/itcast");
        //连接用户名；默认为guest
        connectionFactory.setUsername("heima");
        //连接密码，默认为guest
        connectionFactory.setPassword("itcast");

        //获取连接对象
        Connection connection = connectionFactory.newConnection();

        //获取频道对象
        Channel channel = connection.createChannel();

        //声明(创建)队列
        /**
         * 参数一：队列名称
         * 参数二：是否定义持久化队列
         * 参数三：是否独立本次连接
         * 参数四：是否在不使用的时候自动删除队列
         * 参数五：队列其他参数
         */

        channel.queueDeclare(QUEUE_NAME,true,false,false,null);
        //要发送的信息
        String message="刑道荣近来可好？";
        /**
         * 参数1:交换机名称，如果没有指定则使用默认Default
         * 参数2:路由key，简单模式可以传递队列名称
         * 参数3:消息其他属性
         * 参数4:消息内容
         */
        channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
        System.out.println("已发送消息："+message);

        //关闭资源
        channel.close();
        connection.close();
    }
}
